package dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import model.*;

public class PlataformaDao extends BaseDao {
	private ResultSet plataformaResult;
	private static PlataformaDao plataformaDao=null;
	private List<Plataforma> plataformas;

	private PlataformaDao(){}
	public static PlataformaDao getPlataformaDao(){
		if (plataformaDao == null) {
			plataformaDao = new PlataformaDao();
			}
			return plataformaDao;
	}
	@Override
	public List<Plataforma> listar(){
		ArrayList<Plataforma> list=new ArrayList<Plataforma>();
		try {
			String sqlSent="SELECT * FROM `plataforma` ORDER BY nombre";
			plataformaResult=consultar(sqlSent);
			while(plataformaResult.next()){
				Plataforma plataforma=new Plataforma(plataformaResult.getInt("id"),plataformaResult.getString("nombre"));
				list.add(plataforma);
			}
			desconectar();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		plataformas=list;
		return plataformas;
	}

	@Override
	public Plataforma buscar(Integer id){
		try {
			String sqlSent="SELECT * FROM `plataforma` WHERE id="+id;
			plataformaResult=consultar(sqlSent);
			if(plataformaResult.next()){
				Plataforma plataforma=new Plataforma(id,plataformaResult.getString("nombre"));
				return plataforma;
			}else{
				Plataforma plataforma=null;
				return plataforma;
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			Plataforma plataforma=null;
			return plataforma;
		}
	}

	@Override
	public void guardar(Object plataforma)throws SQLException {
		String sqlSent="INSERT INTO `plataforma` (`nombre`) VALUES ('"+((Plataforma) plataforma).getNombre()+"')";
		try {
			modificar(sqlSent);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new SQLException("Error al guardar la plataforma");
		}
	}

	@Override
	public void eliminar(Integer id)throws SQLException {
		String sqlSent="DELETE FROM `plataforma` WHERE id="+id;
		try {
			modificar(sqlSent);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new SQLException("Error al borrar la plataforma");
		}
	}

	@Override
	public void modificar(Object plataforma)throws SQLException {
		String sqlSent="UPDATE `plataforma` SET nombre='"+((Plataforma) plataforma).getNombre()+"' WHERE id="+((Plataforma) plataforma).getId();
		try {
			modificar(sqlSent);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new SQLException("Error al modificar la plataforma");
		}
	}

}
